package co.edu.eam.taller.mecanico.entidades;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.*;

/**
 * Entity implementation class for Entity: Visita
 *
 */
@Entity
@NamedQueries({
	@NamedQuery(name=Visita.CONSULTA_TODOS,query="Select c from Visita c"),
	@NamedQuery(name=Visita.FIND_VISITA_BY_AUTOMOVIL,query="select c from Visita c where c.automovil=:"+Visita.PARAMETRO_Automovil)
})
public class Visita implements Serializable {

	/**
	 * Canstante para la named quiery de buscar todas las visitas.
	 */
	public static final String CONSULTA_TODOS="Visitas.findAll";
	/**
	 * Canstante para la named quiery de buscar todas las visitas del mismo automovil.
	 */
	public static final String FIND_VISITA_BY_AUTOMOVIL="Visitas.findByAutomovil";
	/**
	 * Constante para el parametro de automovil
	 */
	public static final String PARAMETRO_Automovil="automovil_id";
	
	private static final long serialVersionUID = 1L;

	/*Atributo el cual representa la llave primaria de la entidad visita*/
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private long id;
	/* Atributo el cual representa la fecha de la entidad visita*/
	private Date fecha_Mora;
	@ManyToOne
	private Automovil automovil;
	/* Relaciones: */
	@OneToMany(mappedBy="visita",fetch=FetchType.LAZY )
	private List<Detalle_Visita>detalles;
	
	public Visita() {
		super();
	}

	public Visita(Date fecha_Mora, Automovil automovil) {
		super();
		this.fecha_Mora = fecha_Mora;
		this.automovil = automovil;
	}

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public Date getFecha_Mora() {
		return fecha_Mora;
	}

	public void setFecha_Mora(Date fecha_Mora) {
		this.fecha_Mora = fecha_Mora;
	}

	public Automovil getAutomovil() {
		return automovil;
	}

	public void setAutomovil(Automovil automovil) {
		this.automovil = automovil;
	}

	public List<Detalle_Visita> getDetalles() {
		return detalles;
	}

	public void setDetalles(List<Detalle_Visita> detalles) {
		this.detalles = detalles;
	}
   
}
